home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
gnu
/
gnuchess.lha
/
DOCUMENTATION
/
TODO
< prev
next >
Wrap
Text File
|
1990-05-24
|
6KB
|
160 lines
GNU CHESS - THINGS TO DO
5.The routine repetition() is still not correct since it considers
only where a piece is placed not the type of the piece.
6.A tournament program to play chess between two different chess
programs. This could be done by extending xchess so it could play
two chess programs against each other. If such a beast exsisted we
could play different versions of gnuchess against each other. And
calculate ratings for different machines. A nodes/sec - rating table
would be very nice to have. Also we could test different evaluation
heuristics against each other.
7.A chess database to store historical games.
10.gnuchess does not handle stalemate correctly(is this still true?)
13.Convert the type of all time variables to time_t.
18.Check gnuchess compliance with GNU Coding Standards.
19.Readability of the code can be increased by using these suggested
types where apropriate instead of just plain short.
typedef enum
{
white, black, neutral
} color_t;
/* OR */
typedef short color_t; /* (0..2) */
typedef enum
{
no_piece, pawn, knight, bishop, rook, queen, king, bpawn
} piece_t;
/* OR */
typedef short piece_t; /* (0..7) */
typedef enum
{
a1, a2, a3, a4, a5, a6, a7, a8,
b1, b2, b3, b4, b5, b6, b7, b8,
c1, c2, c3, c4, c5, c6, c7, c8,
d1, d2, d3, d4, d5, d6, d7, d8,
e1, e2, e3, e4, e5, e6, e7, e8,
f1, f2, f3, f4, f5, f6, f7, f8,
g1, g2, g3, g4, g5, g6, g7, g8,
h1, h2, h3, h4, h5, h6, h7, h8
} square_t;
/* OR */
typedef short square_t; /* (0..63) */
typedef short piececnt_t; /* (0..32) piece count */
typedef short offset_t; /* (-63..63) distances on the board */
typedef short score_t; /* (-32768..32767) position scores */
typedef short boolean_t;
20.write more documentation
21.Fix this bug report
Article 95 in gnu.chess:
From: campbell@rnd.GBA.NYU.EDU (Bruce Dietrich-Campbell)
Subject: A Couple of Minor Bugs
Summary: mate ignored, removing en passant
Message-ID: <2004@rnd.GBA.NYU.EDU>
Date: 21 Feb 90 19:41:40 GMT
Reply-To: campbell@rnd.UUCP (Bruce Dietrich-Campbell)
Organization: NYU Stern School of Business
Lines: 43
Good fighting spirit!! Gnuchess fights on even when mated !-)
-------------------------------
Try the following 8| | |*R | | | |*K | | Board Layout
moves: |-------------------------------|
7| | | | | | R | | R | white black
white black |-------------------------------|
6| | | | | | | | | kg2 kg8
f5e6 b8e8 |-------------------------------| rh7 rb8
f7g7 g8f8 5| | | | | | B | | | rf7
g7g8 f8f7(??) |-------------------------------| bf5
4| | | | | | | | |
That's the way |-------------------------------|
to fight!! 3| | | | | | | | |
|-------------------------------|
2| | | | | | | K | |
|-------------------------------|
1| | | | | | | | |
-------------------------------
a b c d e f g h
-------------------------------
Try the following 8| | | | | | | | | Board Layout:
moves: |-------------------------------|
7| | | | | | | | | white black
white black |-------------------------------|
6| | | | | | | | | ke2 kb2
c2c4 d4c3 |-------------------------------| pc2 pd4
5| | | | | | | | |
ie. black takes |-------------------------------|
en passant 4| | | |*P | | | | |
|-------------------------------|
Now try the 3| | | | | | | | |
remove command. |-------------------------------|
The white pawn 2| |*K | P | | K | | | |
doesn't reappear. |-------------------------------|
1| | | | | | | | |
-------------------------------
a b c d e f g h
.............................................................................
Bruce Dietrich-Campbell ARPA: campbell@rnd.gba.nyu.edu
USENET: ...!{uunet,rocky,harvard}!cmcl2!rnd!campbell
Try moving a rook to row and and the undo (it becomes a pawn!!!)
And also fix undo of promotions when using edit to setup a position.
22. Regression testing of strength against a bank
of positions. The regression should compare
performance between two releases, assess
solution times, speed in nodes per second,
accuracy of evaluation, and depth and then
produce a comparison table, along with a final
assessment of which version is superior.
23. Complete rework of the book, eliminating all
illegal moves, providing a score for each variation and then use
dither to choose a random move. Support code to enter variations
based on the score.
24. An analyse mode, feed gnuchess with a game. gnuchess will
analyse each posistion in that game giving it`s own principle
variation and score and a principle variation and score for the
played move, if they are not the same.
25. New code structure:
gnuchess.h: As is!
gnuchess.c: (just the main program) from gnuchess.c
eval.c: (evaluation routines) from gnuchess.c
move.c: (move generation) from gnuchess.c
tran.c: (transposition table) from gnuchess.c
book.c: (opening book) from *dsp.c and gnuchess.c
search.c: (move tree search) from gnuchess.c
dsp.c: (common display routies) from *dsp.c
nondsp.c: (the non common nondsp routines)from nondsp.c
uxdsp.c: (the non common uxdsp routines) from uxdsp.c
nuxdsp.c: (the non common nuxdsp routines)from nuxdsp.c
26. Better forced mate recogition by adding all check moves to the quiescent
analyse (this probably means that the KingScan heuristics can be removed)
27. an empty command line should display the board, to be compatibe with
unix chess in CHESSTOOL mode.
28. The CHESSTOOL mode should not be a compile time option but rather an
option depending on a flag (-c) or if gnuchessr is named chess.